Skip to content

[rpc] eth_simulateV1 #2060

Open
Baltoli wants to merge 8 commits intomainfrom
bruce/simulate-2
Open

[rpc] eth_simulateV1 #2060
Baltoli wants to merge 8 commits intomainfrom
bruce/simulate-2

Conversation

@Baltoli
Copy link
Copy Markdown
Contributor

@Baltoli Baltoli commented Feb 10, 2026

Depends on:

(commits should be rebased out when those PRs are merged)

@dhil dhil force-pushed the bruce/simulate-2 branch 6 times, most recently from 84c6a5b to aeb35e7 Compare March 9, 2026 10:55
@dhil dhil force-pushed the bruce/simulate-2 branch 3 times, most recently from fbea3c9 to 727852d Compare March 13, 2026 17:31
@dhil dhil force-pushed the bruce/simulate-2 branch 4 times, most recently from b89f307 to 01cde5a Compare March 23, 2026 16:31
@dhil dhil force-pushed the bruce/simulate-2 branch 12 times, most recently from fe068a5 to 017f012 Compare April 1, 2026 13:03
@dhil dhil force-pushed the bruce/simulate-2 branch 4 times, most recently from d41b673 to be457a9 Compare April 13, 2026 17:27
@Baltoli

This comment was marked as resolved.

@dhil dhil force-pushed the bruce/simulate-2 branch 2 times, most recently from b17963e to 352d888 Compare May 5, 2026 10:52
@dhil dhil requested a review from Copilot May 5, 2026 11:01

This comment was marked as resolved.

@dhil dhil force-pushed the bruce/simulate-2 branch 5 times, most recently from 3ee5e52 to d954180 Compare May 5, 2026 14:53
@dhil
Copy link
Copy Markdown
Contributor

dhil commented May 5, 2026

@claude Please do another detailed re-review of this PR, taking into account unresolved and resolved comments from previous reviews and responses. Please consider the PR commit by commit; we want each commit be sound and coherent.

@github-actions

This comment was marked as resolved.

@dhil
Copy link
Copy Markdown
Contributor

dhil commented May 5, 2026

P3 Mutually-exclusive state-override fields not enforced. Wont fix.

@dhil dhil force-pushed the bruce/simulate-2 branch 2 times, most recently from 5615737 to ce04d1b Compare May 5, 2026 18:21
@dhil
Copy link
Copy Markdown
Contributor

dhil commented May 6, 2026

@claude please review this PR again. This time focus on identifying opportunities for data races, deadlocks, livelocks, or other parallel and concurrency-related bugs introduced by this PR.

@github-actions

This comment was marked as resolved.

dhil and others added 8 commits May 9, 2026 05:00
This patch adds two small container abstractions to the C API for
handling arrays of state overrides and block overrides for the
`eth_simulateV1` RPC endpoint. These containers are C++ allocated
fixed sized arrays. Allocating the container structures in C++ ensure
that we can guarantee safe construction and well-defined use of overrides.
In particular, this means in BFT we do not need to rely on the definition of
Rust's `Vec` to correctly pass contiguous data between execution and
BFT.
This patch adds an abstraction to help the implementation of `eth_simulateV1`
to manage the rolling context window used to check for reserve balance
violations.

Co-authored-by: Bruce Collie <[email protected]>
This patch adds an abstraction to help the implementation of
`eth_simulateV1` to maintain a mixed buffer of finalized block hashes
and simulated block hashes such that a `BLOCKHASH` invocation in a later
simulated block can be correctly computed.
This patch extends the C interface of `monad_executor` with a submission
procedure for `eth_simulateV1`. Currently, the procedure is not wired up
to an implementation of `eth_simulateV1`.

Co-authored-by: Bruce Collie <[email protected]>
This patch adds the core implementation of the `eth_simulateV1` RPC
endpoint.
This patch wires the `eth_simulateV1` implementation up to the native
transfers tracing mechanism. It does so by threading a boolean through
the execution stack. This boolean is ultimately passed to `EvmcHost` to
toggle emission of transfer traces.
This patch implements the interop layer for Rust <-> C for
interacting with the `eth_simulateV1` implementation.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants